Validation of TV viewership utilizing methods, systems and computer control logic

ABSTRACT

A method, system and computer control logic to provide personalization of a viewer&#39;s usage of an Internet TV platform. The method includes tracking a viewer&#39;s interactive usage pattern of the TV platform; generating viewer usage data based on the tracking; analyzing the viewer usage data on a substantially real-time basis; and personalizing the viewer&#39;s usage of the TV platform on a based on an analysis the viewer usage data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. non-provisional application Ser. No.12/924,237 filed Sep. 23, 2010, hereby expressly incorporated byreference herein

BACKGROUND

Television (TV) and the Internet are merging. Various frameworks such asthe Widget Channel bring rich Internet experiences to TV viewers. For PCInternet browsing, a viewer's Internet access activities may be capturedvia cookies, allowing a customization and personalization of a viewer'sPC Internet experience based on the viewer's interests. Thus, for webbrowser cookies, a service provider typically implements a cookie, whichis a token stored on a viewer's platform to track usage of thatparticular service (and possibly of related services), and topersonalize such service for the viewer. Cookies can accumulateinformation about use of the particular service over time, allowing theservice to be personalized. However, because Internet TV browsing isdone only via service-specific applications, the service access historyor activities are not captured. The unavailability of informationrelating to service access history or activities makes it difficult forservice providers to customize and personalize the TV service deliveryexperience on a connected TV/device.

TV viewing habits and/or commercial ratings data is typically collectedand analyzed in an offline fashion by media research companies such asthe Nielsen Company, using specialized equipment such as a “Home Unit”connected to a TV and installed in limited sets of selected households.There is no definite technique to measure if a program, such as contentor an ad, was actually watched by a viewer. As things currently stand,not only is there a significant delay between the viewing time of acertain program and a time when information about that viewing time isavailable to content providers and advertisers, that information isvalid only for the limited number of selected households installed withthe specialized equipment—typically about 0.02% of the total TVhouseholds in the US).

U.S. Pat. No. 6,670,974 describes a solution for tracking and displayinginformation regarding platform usage over time in an interactive manner.This patent focuses on determining an association of platform usagepatterns over time, and is unrelated to a viewer's TV content watchingpattern.

As set forth inhttp://googleblog.blogspot.com/2009/05/tuning-in-to-tv-data.htmlregarding Google TV, the set top box (STB) may be configured to senddata to a server for processing, the data including information on proofof play of ads by the STB. A report is generated offline that describesthe total number of viewers tuned to a given channel on a per-secondbasis.

As set forth in U.S. Published Patent Application 20080235348, aviewer's channel changes may be captured on a STB, and a set of timersmay be used to determine which set of programs the viewer watched. Theprocessing considers whether the viewer has spent enough time on aspecific channel to have been considered watching rather than merelysurfing. The result is a list of the viewer's viewing history, which canbe delivered remotely and delivered both visually and audibly to theviewer.

Additionally, as set forth in http://en.wikipedia.org/wiki/TiVo, theprior art tracks a viewer's viewing habits through monitoring remote keypresses such as fast forwarding through a program or replaying aprogram.

To date, however, no solution exists for providing personalization of aviewer's service access history or activities with respect to InternetTV browsing, for example on a real-time basis.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are described with respect to the following figures:

FIG. 1 is a flowchart depicting a method embodiment;

FIG. 2 is an architecture according to one embodiment;

FIG. 3 is a flowchart depicting another method embodiment;

FIGS. 4 a and 4 b represent two alternative architecture embodiments;

FIG. 5 represents a system and computer control logic according to oneembodiment.

It will be appreciated that for simplicity and clarity of illustration,elements illustrated in the figures have not necessarily been drawn toscale. For example, the dimensions of some of the elements areexaggerated relative to other elements for clarity. Further, whereconsidered appropriate, reference numerals have been repeated among thefigures to indicate corresponding or analogous elements.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of embodiments.However, it will be understood by those skilled in the art that thepreset invention may be practiced without these specific details. Inother instances, well-known methods, procedures, components and circuitshave not been described in detail so as not to obscure the presentinvention.

Although embodiments of the invention are not limited in this regard,discussions utilizing terms such as, for example, “processing,”“computing,” “calculating,” “determining,” “establishing”, “analyzing”,“checking”, or the like, may refer to operation(s) and/or process(es) ofa computer, a computing platform, a computing system, or otherelectronic computing device, that manipulate and/or transform datarepresented as physical (e.g., electronic) quantities within thecomputer's registers and/or memories into other data similarlyrepresented as physical quantities within the computer's registersand/or memories or other information storage medium that may storeinstructions to perform operations and/or processes.

Although embodiments of the invention are not limited in this regard,the terms “plurality” and “a plurality” as used herein may include, forexample, “multiple” or “two or more”. The terms “plurality” or “aplurality” may be used throughout the specification to describe two ormore components, devices, elements, units, parameters, or the like. Forexample, “a plurality of stations” may include two or more stations.

Embodiments allow capturing a viewer's usage pattern of an Internet TVplatform to allow personalization of the viewer's TV experience. Theplatform may include, for example, personal devices such as mobilecomputing/communication devices (e.g., PDAs, phones, MIDs), fixed andportable computing devices (laptops and desktops), and cloud computingservices and platforms. Both raw data and profiles derived from ananalysis of the data may have a potentially high value to contentproviders and advertisers. According to one embodiment, a methodologyand architecture are provided to capture a viewer's usage pattern of anInternet TV platform, such as, for example, their TV internet browsingexperience and time spent in each service or application. Thisinformation may then be used to create and/or enhance a profile of theviewer, determine the viewer's interests, customize programs (i.e.content or ads) and services made available to them, and generatepersonalization for programs and services to the viewer. For example, ifthe viewer accesses financial sites regularly on her TV, a service froma financial institution may be recommended, and news and financialcontent may also be recommended to the viewer's as a personalization ofthe viewer's experience. If the viewer frequently purchases movietickets via a movie widget, advertisers, network providers may tailoradvertisements being sent to the viewer to be about movie previews andmovie content. Additionally, a profile regarding the viewer's usagepattern may be provided as a service to providers of TV programs.Embodiments allow implementation of tracking and personalizationarchitecture on the TV platform, allowing the tracking of usage of allservices on the platform over time and across invocations.

Embodiments focus on an interaction between a viewer and their InternetTV platform in order to capture data from those interactions that wouldallow personalization of programs, applications and/services for theviewer. For example, if a viewer is watching a certain program on anInternet TV platform, embodiments may allow the gathering of clickstream information based on the viewer's interactions with the platform,including, for example, channel changes, participation including forexample voting, the use of social media, shopping interactions,application or information downloads, and application usage, to name afew. Such click stream information may be captured according to someembodiments and used to obtain behavioral or demographic informationthat may allow more focused personalization. The captured interactionsare not limited to click stream information according to embodiments,and may include any measurable interactions of a viewer with theInternet TV platform, such as through a keyboard, mouse, tablet, orstylus to name a few.

Referring first to FIG. 1, a flowchart is shown of a method embodiment.According to the shown embodiment, a method includes, at block 110,tracking a viewer's interactive usage pattern of a TV platform. Theinteractive usage pattern refers to a viewer's interactions with theInternet TV platform, such as through any interaction tool, includingfor example a smartphone, smart remote, MID, netbook or laptop PC. Themethod further includes, at block 120, generating viewer interactiveusage data based on the tracking, at block 130, analyzing the viewerusage data, for example on a substantially real-time basis, and at block140, personalizing the viewer's usage of the TV platform based on ananalysis of the viewer's usage data. Embodiments advantageously allowservice providers to use the viewer's usage data obtained from aviewer's interactions with the TV platform to better tailor offers tothe viewer, to better understand their customers, or to repackage andsell (or otherwise monetize). The method embodiment of FIG. 1 may beimplemented for example using the architectures shown in the embodimentsof FIG. 2 or 4 to be described below.

FIG. 2 depicts an architecture according to a first embodiment. Thearchitecture shown may be implemented as part of an Internet TV set topplatform or set top box (STB) 210 which includes an Internet ApplicationFramework 212. The Internet Application Framework may be adapted tosupport the execution of Internet Application modules on the STB 210.Several modules may capture the viewer's interactions with the InternetTV platform, including for example the time spent in each TV Internetapplication (e.g., a widget), and browsing patterns if any. InternetApplication Framework 212 may be adapted to interact with onlineservices such as the Internet 220. The Internet itself as shown mayinclude online stores 225 and service providers 230, and in addition, aPersonalization Service 235, the role of which will be set forth infurther detail below. Framework Controller 240, which is part of theInternet Application Framework 212, may be adapted to control anoperation of the Internet Application 215, and to determine whenInternet Application 215 is activated and deactivated. FrameworkController 240 may further be adapted to track and capture viewerinteraction data through a User input interface 242. The user inputinterface 242 may, for example, include a TV remote, a Smartphone, orother various mobile platforms such as a smart remote, a mobile internedevice (MID), or a netbook or laptop PC interface. To interact with theInternet, the Internet Application 215 may use a Communication layer 245and a Communication Shim 250. To interact with a viewer, the InternetApplication may use a Display Engine 255 and a Display Shim 260. Usingshim layers between the Internet Application 215 and either theCommunication layer 245 or the Display Engine 255 may allow more finegrained information to be obtained from Internet applications. Forexample, when the viewer is using a stock application, a combination ofinformation from Communication Shim 250 and Display Shim 260 may allow adetermination of which stocks the viewer may be viewing (via the DisplayShim 260), and also whether the viewer is merely checking stock pricesor actually trading (via the Communication Shim 255). As a result, moredetailed information may be obtained, such as, for example, informationon product categories of interest to the viewer (e.g. financial, travel,electronics, fashion), specific products of interest, and level ofinterest (e.g. browser vs. purchaser).

The shown architecture of FIG. 2 may allow the tracking of a viewer'sinteractive usage pattern with an Internet TV platform, and generationof the viewer's usage data from the usage pattern. The viewer's usagedata may be obtained from the Communication layer 245, CommunicationShim 250, Display Engine 255, Display Shim 260 and/or the User inputinterface 242. The data captured/generated may include information onthe type of application used (e.g. sports, stocks, movies, etc), thetime of day, time spent in the application or widget, the rating of theapplication (e.g. PG, A, etc) and the viewer's i.d. Such data is shownin FIG. 2 as “Current Activity” emanating from Framework Controller 240.In addition, the data may include communications context data asdescribed above emanating from the Communication Shim 250, and/oron-screen context data as described above emanating from the DisplayShim 260. The viewer's usage data may be provided, for example on asubstantially real-time basis, to a Profile Engine 265, which, in theshown embodiment, includes a Profiler 270 and a Profile Store or memory275. The Profiler 270 may create a profile for each viewer based on theviewer's usage data, and stores in the Profile Store, which may include,for example, the local hard disk drive of an Intel ArchitectureSystem-on-a-Chip (IA SoC) based connected audio/video device (CAVdevice). Optionally, to safeguard against misuse or stealing of theprofile, the profile may be encrypted before storage onto Profile Store275.

Referring still to FIG. 2, in order to allow personalization of theviewer's usage experience, the viewer's usage data may be used topersonalize the viewer's content viewing experience, including thesending of programs of interest such as targeted ads, via a ContentStore 285, and/or, it may be used to personalize the viewer's Internetusage experience via the Internet such as by suggesting Internet contentincluding advertisements, services and/or applications.

To personalize the viewer's convent viewing experience from the ContentStore 285, the viewer's usage data may be sent to a RecommendationEngine 280, which may be adapted to generate program (i.e. content orads) recommendations based on the viewer's profile. The RecommendationEngine 280 may, for example, use a correlation between the viewer'susage data and content/ad data from a Content Store 285 in order makerecommendations to the viewer, for example by sending suchrecommendation information to the Internet Application Framework 212 viaa Content Player 290. The Content Store 285 may be configured to access,for example, a local cache of movies on a hard disk, a cache of moviesprovided by third parties (such as, for example, provided by servicessuch as TiVo), a DVD juke box, a module for accessing a content servicesuch as Hulu, YouTube, or Netflix, to name a few. The recommendationscould further for example concern programs or services from targeted adsolution providers such as Invidi, from multiple system operators(MSO's) such as Comcast, from ad management solution providers such asBlackArrow, from ad agencies such as GroupM, and from content providerssuch as CBS.

To personalize the viewer's platform usage experience by way of theInternet, the Profile Store 275 may share some of all of the viewer'sprofile with the Personalization Service 235. Personalization Service235 may in turn share the viewer's usage data with third party profileengines (such as, for example, profile engines for Amazon, Google,iTunes, etc), which may then use the viewer's usage data to recommendprograms, services or applications to the viewer.

Regardless of the manner of personalization, that is, whether throughthe Content Store 285 or directly by way of third party profile engines,should the viewer select a service that is not installed in her CAVdevice, an Application Installation Engine 295 may automaticallydownload the service on the STB, such as on the IA SoC based device.Provision of the viewer usage data to the Profiler 270 and a correlationof the data with programs or services of interest to the viewer may beperformed for example on a real-time basis, in this way advantageouslyallowing a near contemporaneous personalization of the viewer's usageexperience, for example with targeted ads.

Advantageously, embodiments such as the embodiment of FIG. 2 allow theprovision of a platform architecture to capture interactive serviceusage information and to deliver actionable information forpersonalizing services, for example on a substantially real time basis.In addition, the creation of a viewer's profile and delivery ofrecommendation for content/ads and/or services based on the profile, forexample on a real time basis, allow a much more targeted personalizationof the viewer's experience based on the profile.

Other embodiments, exemplary versions of which is shown in either ofFIGS. 3, 4 a and 4 b, provide an architecture for identification of adsand content watched by a viewer on TV through the use of a personalmobile device and/or STB without the need for specialized equipment.There are three elements that may apply with respect to some embodimentssimilar to the embodiment of FIGS. 3, 4 a and 4 b: the use of a viewerinput capture module that incentivizes the viewer to utilize the module,allowing viewer interaction as an input to a verification component; theuse of a mechanism and software framework that is adapted to interpretviewer interactions to verify that a viewer actually watches a program(such as an ad, for example) and that captures a viewer's interests on asubstantially real-time basis; and personalization of the viewer's TVexperience. Additionally, one or more mechanisms may be provided toautomatically rate a program based on how long a viewer actually watchesthe program. Embodiments of FIGS. 3, 4 a and 4 b, which will bedescribed in further detail below, may be particularly suited forexample to determine the efficacy of advertisements.

Referring first to FIG. 3, a flowchart is shown of a method embodiment.According to the shown embodiment, a method includes, at block 310,tracking a viewer's interactive usage pattern of an Internet TV platformby using an input capture module to harvest channel change informationand to actively assist in channel changes by interacting with theviewer, at block 320, generating viewer usage data based on thetracking; at block 330, analyzing the viewer usage data by correlatingthe viewer usage data from data from the TV platform, for example on asubstantially real-time basis; and at block 340, personalizing theviewer's usage of the TV platform based on an analysis of the viewer'susage data by tailoring advertisements to the viewer based on theanalysis of the viewer usage data. Embodiments advantageously allowservice providers to use the viewer's usage data to better tailor offersto the viewer, to better understand their customers, or to repackage andsell (or otherwise monetize). The method embodiment of FIG. 3 may beimplemented for example using the architectures shown in the embodimentsof FIGS. 4 a and 4 b to be described below.

A concept of the embodiment of FIGS. 3, 4 a and 4 b may best beillustrated in the following usage example.

Alex uses his Smartphone as a remote control to watch an Internet TVprogram. During commercial breaks, while watching his favorite shows,Alex (like many others) likes to flip through a set of his favorite TVchannels to see if there is anything else interesting on those channels,unless the ad playing on the current channel catches his eyes. Alex hasto remember to flip back to his original channel every so often to avoidmissing the rest of the show after resuming from commercial break, whichis inconvenient. With a single touch, according to an embodiment, Alexcan activate an application on his Smartphone that automatically sweepsthrough his favorite channels, and automatically switches back to theoriginal channel before the commercial break is over. To use theapplication, Alex can simply configure a prioritized list of favoritechannels. When commercial break begins, he presses a <start> button ofthe application, which orchestrates a channel sweep on the TV or Set-TopBox. Similar to channel auto scanning in FM/AM radio, the applicationstays at each channel for a pre-defined short period of time beforemoving to the next channel. During the process, Alex can stop at anychannel by pressing the <stay> button if he sees something that catcheshis eyes on the channel, including either a show or commercial. He canalso press the <resume> button to continue channel sweeping. In anycase, the application will automatically switch the TV back to theoriginal channel before the commercial break ends so Alex can continueenjoy the original show without missing out anything. A reminder messagebox (together with audio reminder) can pop up a few seconds beforeswitching back the channel. Alex can choose to stick with the currentchannel by pressing a button on the message box; or do nothing and thechannel is automatically switched back to the original channel.

The scenario described above is just one example that utilizes aSmartphone as implementing a user interface (UI) device; otherimplementations on various mobile platforms such as smart remote, MID,netbook or laptop PC, are also possible. One attractive alternativeimplementation is an applet (e.g., a widget) on a STB that supports anapplication execution environment (such as the widget channel). In thatcase, a viewer may use a standard STB remote as the UI.

The above usage example illustrates an approach that incentivizesviewers to interact through the UI devices and provide conscious inputduring TV watching experience. Because the viewer is consciously andexplicitly interacting with the UI devices to choose what to watch, itis highly likely that the viewer will watch the content he has chosen.The viewer's actions can be correlated directly with ad or programcontent watched. For example, the fact that Alex pressed the <start>button to activate the auto channel sweep feature indicated that he didnot watch the ad coming up on the current channel during the commercialbreak of the show. And if he pressed the <stay> button sweeping througha channel, it meant he did watch whatever was playing on that channel atthat moment. Channel change information is very valuable because itcarries context about what the viewer is interested in and notinterested in.

Currently viewers are de-incentivized from changing channels out of fearof missing their show. Instead, they typically choose to do somethingelse (talk, read, web browser, use the bathroom, get a snack, replyemails, IM with friends, etc.) while waiting for the show to come backon. As a result, there is no indication whether or not they watched theTV. Embodiments such as the embodiment of FIGS. 4 a and 4 b takeadvantage of this observation and provide viewers an easy way to safelychange channels. Thus viewers are given incentive by providing anautomated channel surfing utility from their Smartphone or TV smartremote to stay and continue paying attention to the TV program (withoutmissing the current show) while in the meantime allowing a harvesting ofchannel change information.

Referring now to FIGS. 4 a and 4 b, where like reference numerals referto like components, two respective embodiments include an architecturefor harvesting relevant information from viewer usage data obtained froma input capture module, such as a UI component as described above, forthe purpose of analyzing the viewer usage data, such as in the form ofad delivery verification. While the embodiment of FIG. 4 a pertains toan analysis of the viewer usage data at the Content Provider's Network435, the embodiment of FIG. 4 b pertains to an analysis of viewer usagedata in the STB of a Viewer's Private Network 410, as will be describedin further detail below. It is noted that each of the embodiments ofFIGS. 4 a and 4 b further include two sub-embodiments or options, onepertaining to the provision of a UI component or Favorite Channel SweepApplication 430 residing in a Smartphone or other similar deviceexternal to the STB within the Viewer's Private Network 410, and theother pertaining to the provision of the UI component within STB, inwhich case a TV remote 415 may be used by a viewer to change channels,as will be described in further detail below.

As shown in the architectures of FIGS. 4 a and 4 b, a Viewer's PrivateNetwork 410 may include a STB 415, and at least one of a TV remote 420and a Smartphone 425. At least one of the STB 415 and the Smartphone 425may include a UI component in the form of a Favorite Channel SweepApplication 430 on at least one of the Smartphone 425 and the STB 415.The Channel Sweep Application 430 may be adapted to capture viewerinteractions while a the same time issuing commends to control switchingTV channels based on viewer input. The Favorite Channel SweepApplication may abstract viewer usage data including information onviewer interactions to a series of time-stamped event packages. Eachevent package may, according to an embodiment, be captured in many formsthat are suitable to be transported via a network connection. An exampleof an event package according to an embodiment shown in XML format is asfollows:

<?xml version=“1.0” encoding=“utf-8”?> <AdVerificationDataStream><ChannelSweep CurrentChannel=“TNT” SweepStartTime=“11/16/09 18:33:00”SweepStopTime=“11/16/09 18:38:00”> <Destination Channel=“CBS” DwellTime=“00:01:00” Timestamp=“11/16/09 18:34:00” /> <DestinationChannel=“NBC” Dwell Time=“00:00:30” Timestamp=“11/16/09 18:36:00” /><Destination Channel=“HBO” Dwell Time=“00:00:30” Timestamp=“11/16/0918:37:00” /> </ChannelSweep> </AdVerificationDataStream>The example event package above encapsulates enough information to inferviewing of a specific advertisement or TV show, provided one has accessto the ads airing schedule data. Each channel sweep by the FavoriteChannel Sweep Application 430 may include a header that captures thestart/end time of the channel sweeping, the current viewing channel,followed by a payload that includes a series of sub-entries such as“Destination Channel,” which may include the channel that the viewerexplicitly indicated interest in by pressing the <stay> button, “DwellTime,” which may represent the amount of time the viewer spent dwellingon the corresponding destination channel, and “Timestamp,” which mayrepresent the time when first entering the noted destination channel.

Referring still to FIGS. 4 a and 4 b, if the Channel Sweep Applicationresides on Smartphone 425, it may send information regarding theviewer's usage pattern to the STB 420 through Mobile Daemon 450. TheMobile Daemon 450 may be a proxy that is coupled to Tuner Driver 455 andthat provides a network interface for the UI component, such as forexample for Channel Sweep Application 430 on Smartphone 425, to controltuning to different channels by controlling the Tuner Driver 455 throughthe Platform Middleware 460 based on commands from the Channel SweepApplication 430. The Daemon 450 may communicate with the Channel SweepApplication 430 on Smartphone 425 using any appropriate communicationchannel, either wired or wireless, receiving remote channel changecommands. On the other hand, if the Channel Sweep Application (such as,for example, a TV widget) resides on STB 420, it may send such channelchange command information regarding the viewer's usage pattern to thePlatform Middleware 460 (such as, for example, a widget engine) directlyin order to control the Tuner Driver 455. The Platform Middleware 460may provide API's to all of the platform hardware components such asgraphics, video and audio engines (not shown), and may control the tunerby setting channels, and determining the channel(s) in use.

In either case, as previously mentioned, the viewer usage data may besent to an Ad/Show Verification Server 422, which may reside either inthe Content Provider's network 435 as shown in FIG. 4 a, or in the STB420 as shown in FIG. 4 b, other locations for the Ad/Show VerificationServer being within the scope of embodiments. Thus, one option as shownin FIG. 4 a may involve analysis performed at an Ad/Show VerificationServer 422 that is part of the Content Provider Network 435 which mayinclude a TV Programming Schedule database 440, including a TV adschedule, while another option as shown in FIG. 4 b would be to have theanalysis occur at the STB 420 at an Ad/Show Verification Server 422 thatis part of the STB. This last option as shown by way of example in FIG.4 b may increase viewer privacy and accommodate targeted advertisingselected by the STB, but requires the Content Provider 435 to distributean ad and content schedule. In the first case as shown by way of examplein FIG. 4 a, the viewer usage data, in the form of channel sweep data,may be sent to the Content Provider 435, which may use its programmingschedule, including its ad schedule, to perform the analysis bydetermining which ads and content were viewed.

As seen in FIG. 4 a, event packages may be sent from Channel SweepApplication 430, either from the Smartphone 425 or from the STB 420, toAd/Show Verification Server 422 of the Content Provider's Networkthrough a secure link. As seen in FIG. 4 b, where the Channel SweepApplication 430 resides in the Smartphone 425, the Mobile Daemon 450 maybe used send viewer usage data to the Ad/Show Verification Server 422 ofSTB 420. In the alternative, where the Channel Sweep Application 430resides in the STB, the Channel Sweep Application 430 may directly sendviewer usage data to Ad/Show Verification Server 422 of STB 420.

Referring to FIGS. 4 a and 4 b still, Ad/show Verification Server 422may in each case include a verification module 470 and a ratings module475. Thus, to infer ad viewership for example, the Ad/Show VerificationServer 422 may access information from the TV Programming Scheduledatabase 440, including ad schedules, to have the verification module470 analyze the viewer usage data by correlating each destinationchannel entry with an ad according to the timestamp. If the timestamp ofthe channel corresponds to an ad, and the Dwell Time is greater than apredetermined duration, such as, for example, 15 seconds, the ratingsmodule could be infer that the viewer consumed the ad. The time spent bythe viewer before he switches the channel could also be used by theratings module 475 to rate the commercial. For instance, if the viewerwatched an entire 30 second ad, the rating for this ad could be assumedto be 10 (on the basis of a 1-10 rating). If the viewer watched 25seconds, the rating can be considered as 9 and so on. This mechanismgenerates rating of a commercial without viewer's explicit input,offering seamless TV viewing experiences while gathering unbiasedfeedback from viewers. An analysis of the viewer usage data could alsoused to infer what TV content the viewer watched during the commercialbreaks, by correlating event timestamps with the TV programmingschedule. The result could indicate shows that the viewer might beinterested in, especially if the data indicates that the viewer chose tostay with a different program instead of switching back, which couldaffect show ratings and indicate that the viewer should record theseshows in the future.

Referring still to FIGS. 4 a and 4 b, data obtained from an analysis ofthe viewer usage data by the Ad/Show Verification Server 422 may be sentto a Recommendation Engine 480, which may be adapted to personalize theviewer's usage experience by generating a program (i.e. content or ads)recommendations based on the viewer's profile, for example on asubstantially real-time basis. Because the viewer's interactions may becaptured by the system on a substantially real-time basis,implementation of such a Recommendation Engine may become possible. Therecommendations could for example concern ads from targeted ad solutionproviders such as Invidi, from multiple system operators (MSO's) such asComcast, from ad management solution providers such as BlackArrow, fromad agencies such as GroupM, and from content providers such as CBSAdditionally, the Recommendation Engine 480 may use the viewer's usagedata to recommend services offered by third parties, such as, forexample, Amazon, or Google, as depicted by an arrow emanating therefromand extending to the privacy layer. Although in the shown embodiments ofFIGS. 4 a and 4 b, the Recommendation engine 480 is shown as residingwithin the viewer's private network 410, embodiments are not so limited,and include within their scope the provision of a recommendation engineto receive a viewer's usage data anywhere, such as within the ContentProvider's Network 435 for example, or at another location.

Optionally, a privacy layer 465 may be provided at either the Smartphoneand/or the STB in order to allow a control of the release of sensitiveviewer information prior to transmission. This would allow the viewer todecide whether or not to share private information with the contentprovider. Additionally, optionally, the viewer usage data may be sent tothird party advertisers from the Ad/Show Verification Server, asdepicted by an arrow emanating therefrom and extending beyond theContent Provider Network in FIG. 4 a, or as depicted by an arrowemanating from the Privacy Layer 465 of STB 420 in FIG. 4 b.

Advantageously, some embodiments as described for example in relation toFIGS. 3, 4 a and 4 b, allow the use of an application that assists insurfing, instead of requiring timers to determine what programs a viewerwatches. Thus, rather than passively watching surfing behavior, someembodiments propose an active interaction with the viewer through aninput capture module, which enables a more accurate determination of aviewer's presence and interests, for example on a substantiallyreal-time basis. The above allows targeted ad campaigns. Implementationof such embodiments further advantageously: may use off-the-shelfhardware/software platforms; may allow easy installation including bothon the Smartphone and on the STB, reaching a much larger viewer base;may provide near real-time ad viewing verification thus allowingadvertisers to fine tune/re-calibrate their ad campaigns based oncurrent ad watching data, thus providing the advertisers with anopportunity to maximize their returns; may provide smooth TV viewingexperiences while at the same time collecting implicit commercialratings from viewers; may incentivize viewers through an input capturemodule, to interact with the TV during commercial breaks, as a result ofwhich a viewer's interactions with the TV may be analyzed, bringingvalue to advertisers; may provide a low cost, lightweight and scalablesolution that has the potential to reach a large viewer base compared toexisting media research technology.

According to embodiments, it is possible to capture a viewer's channelwatching pattern, and interface this information with for example amultiple system operator's (MSO's) Ad schedule and metadata to determinewhich ads were consumed and at what time of the day. This informationcan be provided to advertisers, media buyers, and ad network in nearreal-time. In turn, advertisers and media buyers can use thisinformation to fine tune and calibrate their Ad Campaign, if needed.

While a single STB is shown in FIGS. 2, 4 a and 4 b, according toembodiments, one or more STB's may be present to the same viewer in thesame household/location. All such STB's could be implemented to functionas noted with respect to the embodiments of FIGS. 2, 4 a and 4 b.Moreover, more than one household/location could have STB's, each ofthose STB's in the respective households/locations being apt to beimplemented to function as noted with respect to the embodiments ofFIGS. 2, 4 a and 4 b.

The structure of the various components and applications shown in FIGS.2, 4 a and 4 b, such as the STB, the input capture module or the Ad/Showverification server, may vary in various embodiments, as would beunderstood by a person of skill in the art. For example, the FrameworkController, Profile Engine or Recommendation Engine of FIG. 2, or theFavorite Channel Sweep Application or Ad/Show Verification Server ofFIGS. 4 a and 4 b, may be embodied in a network node that includes aserver or other device having one or more programmable processors, orotherwise having the circuitry required to achieve the noted functions.

In addition, one or more features disclosed herein may be implemented inhardware, software, firmware, or combinations thereof, includingdiscrete and integrated circuit logic, application specific integratedcircuit (ASIC) logic, programmable gate arrays, and/or microcontrollers,or may be implemented as part of a domain-specific integrated circuitpackage, or a combination of integrated circuit packages. The termsoftware, as used herein, refers to a computer program product includinga computer readable medium having computer program logic stored thereinto cause a computer system to perform one or more features and/orcombinations of features disclosed herein.

Software or firmware embodiments are illustrated in the context ofcomputing system shown in FIG. 5. In FIG. 5, system 1000 may include aprocessor 1020 and a body of memory 1010 that may include one or morecomputer readable media that may store computer program logic 1040.Memory 1010 may be implemented as a hard disk and drive, a removablemedia such as a compact disk and drive, a read-only memory (ROM) orrandom access memory (RAM) device, for example. Processor 1020 andmemory 1010 may be in communication using any of several technologiesknown to one of ordinary skill in the art, such as a bus. Computerprogram logic 1040 contained in memory 1010 may be read and executed byprocessor 1020. One or more I/O ports and/or I/O devices, showncollectively as I/O 1030, may also be connected to processor 1020 andmemory 1010.

Computer program logic 1040 may include logic 1050 configured to causethe processor to track a viewer's usage pattern of a TV platform.Computer program logic 1040 may also include logic 1060 configured tocause the processor to generate viewer usage data based on the tracking.The computer program logic 1040 may further include logic 1070 to causea processor to analyze the viewer usage data for example on asubstantially real-time basis, and logic 1080 to personalize theviewer's usage of the TV platform. In other embodiments, the computerprogram logic 1040 may be organized differently in order to implementthe processing described herein. Different logic modules may be usedinstead of those shown in FIG. 5. Moreover, in alternative embodiments,more or fewer logic modules may be used, as would be understood by thoseskilled in the art. By way of example, in the embodiment of FIG. 2, thetracking of a viewer's usage pattern and the generation of viewer usagedata may take effect in the Communication Shim 250, the Display Shim 260and the Profiler 270, while in the embodiments of FIGS. 4 a and 4 btracking and generation may be effected by the Favorite Channel SweepApplication 430. In addition, by way of example, in the embodiment ofFIG. 2, the analyzing logic and personalization logic may be implementedin the Profiler 270, Recommendation Engine 280, and ApplicationInstallation Engine 295, plus the Personalization Service 235, while inthe embodiments of FIGS. 4 a and 4 b the analyzing logic andpersonalization logic may be implemented in the Ad/Show VerificationServer 422 and Recommendation Engine 480. The above are merely examples,and other implementations of the logic components shown in FIG. 5 arewithin the purview of embodiments.

While certain features of embodiments have been illustrated anddescribed herein, many modifications, substitutions, changes, andequivalents may occur to those skilled in the art. It is, therefore, tobe understood that the appended claims are intended to cover all suchmodifications and changes as fall within the true spirit of embodiments.

The graphics processing techniques described herein may be implementedin various hardware architectures. For example, graphics functionalitymay be integrated within a chipset. Alternatively, a discrete graphicsprocessor may be used. As still another embodiment, the graphicsfunctions may be implemented by a general purpose processor, including amulticore processor.

References throughout this specification to “one embodiment” or “anembodiment” mean that a particular feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneimplementation encompassed within the present invention. Thus,appearances of the phrase “one embodiment” or “in an embodiment” are notnecessarily referring to the same embodiment. Furthermore, theparticular features, structures, or characteristics may be instituted inother suitable forms other than the particular embodiment illustratedand all such forms may be encompassed within the claims of the presentapplication.

While the present invention has been described with respect to a limitednumber of embodiments, those skilled in the art will appreciate numerousmodifications and variations therefrom. It is intended that the appendedclaims cover all such modifications and variations as fall within thetrue spirit and scope of this present invention.

What is claimed is:
 1. A computer executed method comprising:identifying an advertisement viewed by user; electronically determiningthe user's level of interest in the advertisement based on theactivities undertaken during the advertisement by the user while theadvertisement was being viewed by the user; electronically compiling alist of favorite channels; in response to a single touch actuation bythe user, automatically switching from displaying a first channel todisplaying the favorite channels one after another; checking for a usercommand to stop displaying favorite channels one after another and tomaintain the display of a current favorite channel; and in response todetecting the end of a commercial, displaying a message indicating thatdisplay is about to switch back to said first channel, checking for auser command to continue displaying the currently favorite channel andautomatically switching back to displaying the first channel if the usercommand is not received.
 2. The method of claim 1 wherein electronicallydetermining includes monitoring the time spent by the user viewing theadvertisement.
 3. The method of claim 1 including verifying whether theuser is actually viewing the advertisement.
 4. The method of claim 2including providing the determination of the level of interest to anadvertiser.
 5. The method of claim 1 including identifying anadvertisement displayed on television.
 6. The method of claim 1including identifying an advertisement viewed on a web page.
 7. Anon-transitory computer readable medium storing instructions to executea sequence comprising: identifying an advertisement viewed by user; andelectronically determining the user's level of interest in theadvertisement based on the activities undertaken during theadvertisement by the user while the advertisement was being viewed bythe user; electronically compiling a list of favorite channels; inresponse to a single touch actuation by the user, automaticallyswitching from displaying a first channel to displaying the favoritechannels one after another; checking for a user command to stopdisplaying favorite channels one after another and to maintain thedisplay of a current favorite channel; and in response to detecting theend of a commercial, displaying a message indicating that display isabout to switch back to said first channel, checking for a user commandto continue displaying the currently favorite channel and automaticallyswitching back to displaying the first channel if the user command isnot received.
 8. The media of claim 7 wherein electronically determiningincludes monitoring the time spent by the user viewing theadvertisement.
 9. The media of claim 7, the sequence including verifyingwhether the user is actually viewing the advertisement.
 10. The media ofclaim 8, the sequence including providing the determination of the levelof interest to an advertiser.
 11. The media of claim 7, the sequenceincluding identifying an advertisement displayed on television.
 12. Themedia of claim 7, the sequence including identifying an advertisementviewed on a web page.
 13. An apparatus comprising: a processor toidentify an advertisement viewed by a user and determine the user'slevel of interest in the advertisement based on the activitiesundertaken during the advertisement by the user while the advertisementwas being viewed by the user, electronically compile a list of favoritechannels, in response to a single touch actuation by the user,automatically switch from displaying a first channel to displaying thefavorite channels one after another, check for a user command to stopdisplaying favorite channels one after another and to maintain thedisplay of a current favorite channel, and in response to detecting theend of a commercial, display a message indicating that display is aboutto switch back to said first channel, check for a user command tocontinue displaying the currently favorite channel and automaticallyswitch back to displaying the first viewed channel if the user commandis not received; and a memory coupled to said processor.
 14. Theapparatus of claim 13, said processor to identify the time spent by theuser viewing the advertisement.
 15. The apparatus of claim 13, saidprocessor to monitor whether the user is actually viewing theadvertisement.
 16. The apparatus of claim 13, said processor to verifythe determination of the level of interest to an advertiser.
 17. Theapparatus of claim 13, said processor to provide an advertisementdisplayed on television.
 18. The apparatus of claim 13, said processorto identify an advertisement viewed on a web page.